package com.ruubypay.biz.utils.file;

import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

/**
 * 上传文件工具类
 * @author chenhaiyang
 */
public class FileUpload {

    private static Logger logger = LoggerFactory.getLogger(FileUpload.class);
    /**
     * 写文件到当前的目录中
     * @param in 输入流
     * @param dir 目录
     * @param realName 文件名称
     * @throws IOException IO异常
     */
    public static void copyFile(InputStream in, String dir, String realName)
            throws IOException {
        File file = mkdirsmy(dir,realName);
        FileUtils.copyInputStreamToFile(in, file);
        in.close();
    }


    /**
     * 判断路径是否存在，否：创建此路径
     * @param dir  文件路径
     * @param realName  文件名
     * @throws IOException IO异常
     */
    private static File mkdirsmy(String dir, String realName) throws IOException{
        File file = new File(dir, realName);
        if (!file.exists()) {
            if (!file.getParentFile().exists()) {
                if(!file.getParentFile().mkdirs()){
                    logger.error("file {} parentFile {} mkdir fail",file.getName(),file.getParentFile().getName() );
                }
            }
            if(!file.createNewFile()){
                logger.error("file {} createNewFile fail",file.getName());
            }
        }
        return file;
    }
}
